package es.ucm.fdi.isbc.viviendas.representacion.adaptacion;

import java.util.ArrayList;
import java.util.Collection;

import es.ucm.fdi.isbc.viviendas.representacion.DescripcionVivienda;
import es.ucm.fdi.isbc.viviendas.representacion.SolucionVivienda;

import jcolibri.cbrcore.CBRCase;

public class AdaptacionSolucion {
	
	Collection<CBRCase> _casos;
	boolean _esConocida;
	
	public AdaptacionSolucion(Collection<CBRCase> casos, boolean superficieConocida){
		_casos=casos;
		_esConocida=superficieConocida;
	}
	public SolucionVivienda getSolution(){
		
		SolucionVivienda solucion = new SolucionVivienda();
		ArrayList<Integer> listaPrecios = new ArrayList<Integer>();
		Integer precio,max;
		max=Integer.MIN_VALUE;
		if(_esConocida){
			for(CBRCase caso : _casos){
				precio=((DescripcionVivienda)caso.getDescription()).getPrecioMedio();
				listaPrecios.add(precio);
				if(precio>max){
					max=precio;
				}
			}
		}else{
			for(CBRCase caso : _casos){
				precio=((DescripcionVivienda)caso.getDescription()).getPrecio();
				listaPrecios.add(precio);
				if(precio>max){
					max=precio;
				}
			}
		}
		
		listaPrecios.remove(max);
		precio=0;
		
		for(int i=0; i<listaPrecios.size(); i++){
			precio+=listaPrecios.get(i);
		}
		
		
		precio=precio/listaPrecios.size();	
		solucion.setPrecio(precio);
		
		return solucion;
	}
	
}
